## The PGZ decoder


from PyM import *

Z5 = Zn(5)
[K,x] = extension(Z5,[1,0,-2],'x','K')
show(x.order())
[_,T] = polynomial_ring(K,'T')

g = T**6 + T**3 + T +1

a = Set(K)[1:]
a = [t for t in a if evaluate(g,t)!=0]

C = goppa(g,a)

H = H_(C)
H1 = prune(blow(H,Z5))
show(shape(H1))

n = ncols(H)

e = rd_error_vector(n,1,Z5)
show("e =",e)

show(PGZ(e,C))
